package morenoapp.components.thinkgraphv2.nodes;

import edu.umd.cs.piccolo.nodes.PPath;
import edu.umd.cs.piccolo.nodes.PText;
import java.awt.Color;
import java.beans.PropertyChangeEvent;
import morenoapp.model.view2.MorenoView2Face;
import morenoapp.util.I18N;

/**
 * Социограмма, отвечает за отображение "кругов" мишени
 * социограммы а так же корректное распложение узлов
 * соответствующих респондентам в этих "кругах".
 *
 * @author dmitry.mamonov
 */
public class SociogramNode extends AbstractNode {
    /**
     * Количество кругов мишени.
     */
    final int ringsCount = 3;

    public SociogramNode(MorenoView2Face _config) {
        super(_config);
        propertyChange(null);
    }

    public int getRingsCount() {
        return ringsCount;
    }

    @Override
    public void propertyChange(PropertyChangeEvent evt) {
        removeAllChildren();

        for (int i = ringsCount; i > 0; i--) {
            int diameter = 2 * config.getRingStep() * i;
            PPath round = PPath.createEllipse(-diameter / 2, -diameter / 2, diameter, diameter);
            round.setOffset(0, 0);
            addChild(round);
        }
        PText caption = new PText(I18N.get("sociogram.sociogram")+"\n"+config.getViewName());
        caption.setJustification(0.5f);
        caption.setPaint(Color.lightGray);
        caption.setOffset(-caption.getWidth()/2, -config.getRingStep()*(ringsCount+1));
        addChild(caption);
    }
}
